package clienteapjava;

import apjava.basico.ServidorModel;
import apjava.basico.Informacao;
import clienteapjava.dados.TratadorInformacaoCliente;
import clienteapjava.gui.JanelaPrincipal;
import javax.swing.JOptionPane;

public class TratadorConexaoCliente implements Runnable {
    
    private ServidorModel servidor;
    
    public TratadorConexaoCliente(ServidorModel servidor) {
        this.servidor = servidor;
    }
    
    public void run() {
        while(true) {
            Informacao info = null;
            try {
                if(!servidor.getConexao().isClosed()){
                    info = (Informacao) servidor.getStreamLeitura().readObject();
                }else return;
            } catch (Throwable ex) {
                System.out.println("Erro ao tentar ler a informacao do ObjectInputStream do servidor: " + servidor + " ! Abortando!");
                ex.printStackTrace();
                JOptionPane.showMessageDialog(JanelaPrincipal.getInstance(), "Conexao perdida com o servidor!", "Falha", JOptionPane.ERROR_MESSAGE);
                System.exit(-1);
            }
            new Thread(new TratadorInformacaoCliente(info, this.servidor)).start();
        }
    }
    
}
